#ifndef MAINWINDOW_H
#define MAINWINDOW_H

/*****************************************************************************************
  @copyright  2020-2021
  @date       2021-02-12
  @author     qiaowei
  @contact    weiweiqiao@126.com
  @version    1.0
  @brief      主窗口，显示数据
  @history
      @date   20210212
      @author qiaowei
      @brief  修改open_dialog_to_read_data方法，可以同时打开多个文件读取内容

      @date   20210217
      @author qiaowei
      @brief  重写closeEvent方法
******************************************************************************************/

#include <QMainWindow>
#include <QThread>

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }

class QAction;
class QMenu;

class File_processing;
class Process_data_table_model;
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

    virtual void closeEvent(QCloseEvent* ev);

signals:
    void sig_file_name_with_path(QString file_name);

private:
    void setup_widgets();

    void setup_connections();

    void open_dialog_to_split_file();

    void open_dialog_to_read_data();

//    void user_send_inquiry_to_

private:
    Ui::MainWindow *ui;

    QMenu* file_menu_;

    QAction* open_file_action_;
    QAction* split_file_data_action_;
    QAction* exit_application_action_;

    /***************************************************************************
     @date     2021-02-16
     @author   qiaowei
     @contact  weiweiqiao@126.com
     @version  1.0
     @brief    文件操作类，接收窗体的操作，对操作进行分类，调用不同的信号
    ***************************************************************************/
    File_processing* file_processing_;

    /***************************************************************************
     @date     2021-02-16
     @author   qiaowei
     @contact  weiweiqiao@126.com
     @version  1.0
     @brief    模型类，保存从文件中读取的数据
    ***************************************************************************/
    Process_data_table_model* model_;

//    QThread model_thread_;
};
#endif // MAINWINDOW_H
